The present invention concerns integrated circuits and pertains particularly to an improved memory bank system which increases manufacturing component yield.
Many integrated circuits (components) have embedded memory cells used for the storage of information. When manufacturing components which have embedded memory, defects in the memory cells make the memory cell unusable. If the memory errors caused by the defects are uncorrected, the entire component is unusable, and the overall manufacturing yield is reduced.
A typical memory contains multiple blocks ("banks"). Each block contains many memory cells. Each memory cell normally contains a single bit of data, although some technology permits more than one bit of data per memory cell. As the size of the memory gets larger there is an increased chance that there is an error in a memory cell. For example, if P(G) is the probability of a memory bit being good, then the probability of zero errors in a memory of n bits is P(G).sup.n.
For example, if P(G)=0.99 and there are 100 memory cells, the probability of zero errors is 0.99.sup.100 which is approximately equal to 0.37. Thus, the probability of zero errors in a large memory can be very, very small.
There are several techniques for working around bit errors in memory, thus increasing the yield of components with embedded memory.
For example, memory bank remapping can be performed. In this method, the manufacturers build in additional spare blocks of memory. When the memory is manufactured, all memory blocks are tested. If a memory block has any bit errors, the block is mapped out and one of the spare blocks is mapped into its place. Often called "self-repair", this remapping is done by disconnecting the failed memory block and rewiring a spare memory block into its place. If there are no bit errors, the spare memory blocks are unused. If there are more blocks with bit errors than there are spare blocks, the entire component cannot be used, and the yield is reduced. However, generally memory bank remapping is costly and cumbersome to implement.
Another technique used to increase the yield of components with embedded memory is the use of error correcting memory. Although many variants exist, each word of error correcting memory typically has 12 memory cells which hold the data and the error correction bits. An error-correction function is applied to the data and error correction code, yielding an 8 bit result. The error correction function is typically able to correct a single bit error, and detect 2 bit errors. Because of its high additional cost, error correcting memory is used primarily in mission-critical systems where very high reliability is required. Error correcting memory is not a low cost method of increasing yield.